#include "timer.h"
#include <QTimer>
#include <QFont>
#include <QFontDatabase>

// Timer 构造函数，传入父图元（如玩家或界面元素）
Timer::Timer(QGraphicsItem *parent): QGraphicsTextItem(parent) {

    // 初始化时间为 400 秒
    timeCount = 400;

    // 加载自定义字体（CoinCount2）
    int id = QFontDatabase::addApplicationFont(":font/CoinCount2.ttf");
    QFontDatabase::applicationFontFamilies(id);

    // 设置初始文本内容
    setPlainText(QString::number(timeCount));      // 显示为文本
    setDefaultTextColor(Qt::black);                // 字体颜色
    setFont(QFont("CoinCount2", 30));              // 字体样式
    startTimer(1000);                              // 每 1000 毫秒触发一次 timerEvent()
}

// Qt 的定时事件响应函数，每秒调用一次
void Timer::timerEvent(QTimerEvent *) {
    decrease();  // 每秒钟执行一次减少计时
}

// 时间减一，并更新显示
void Timer::decrease() {
    if (timeCount != 0) {
        timeCount--;
        setPlainText(QString::number(timeCount));  // 更新文本
    }
}

// 返回当前剩余时间
int Timer::getTime() {
    return timeCount;
}
